Abaqus子程序之Usdfld 您所在的位置:网站首页 用户子程序abaqus 温度场定义 Abaqus子程序之Usdfld

Abaqus子程序之Usdfld

2024-03-19 07:40| 来源: 网络整理| 查看: 265

0.前言

上一次简单介绍了下ufield子程序的用法,今天要介绍的子程序是Usdfld,它主要是用于定义求解依赖的材料属性等,例如,我们的弹性模型在求解过程中随着其他变量而改变等等,这个时候就可以考虑到这个子程序,它和其他子程序的搭配使也很常见,后续我也会介绍相关内容的。

1. 子程序Usdfld简介

允许您将材料点处的场变量定义为时间的函数或输出变量标识符表(使用 Abaqus/标准输出变量标识符)中列出的任何可用材料点数值的函数,用户定义的输出变量 UVARM 除外;

可用于引入依赖于求解的材料属性,因为这些属性可以很容易地定义为场变量的函数;

将在材料定义包含用户定义的场变量的单元的所有材料点调用;

必须调用实用程序 GETVRM 来访问材料点数据;

可以使用和更新状态变量;

可以与用户子程序 UFIELD 结合使用来规定预定义的场变量。

本文主要讨论:

1. 软件界面设置

2.更新场变量

3. 变量辨析

4.子程序接口

5.变量说明

2. 软件界面设置

适用求解器:Abaqus/Standard

1.具体调用方法见下图

​图1

2.后处理z变量,用场输出中的sdv查看也可以)

图2

3. 变量辨析

1.场变量

在调用用户子程序 USDFLD 之前,材料点处的场变量值通过节点处定义的值进行插值计算。而我们上次介绍的UFIELD子程序就是用来定义节点处的场变量的。USDFLD用户子程序中对场变量的任何更改都是仅仅材料点处会修改,节点处不受影响,节点场变量保持为为初始条件、预定义场变量或用户子程序 UFIELD 中的值。此程序中定义的场变量的值用于计算定义为依赖于场变量的材料属性值,并传递到在材料点调用的其他用户子程序。

2.状态变量

由于 USDFLD 中场变量的重新定义是基于当前增量,因此必须引入使用此子程序更新材料属性所需的任何历史相关性与用户定义的状态变量。

状态变量可以在 USDFLD 中更新,然后传递到可以在该材料点调用的其他用户子程序,例如上面列出的那些。你指定此类状态变量的数量,如图1中的depvar。

4. 用户子程序接口       SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,     1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,     2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,LACCFLA) C       INCLUDE 'ABA_PARAM.INC' C       CHARACTER*80 CMNAME,ORNAME       CHARACTER*3  FLGRAY(15)       DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),     1 T(3,3),TIME(2)       DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*)       user coding to define FIELD and, if necessary, STATEV and PNEWDT       RETURN       END 5. 变量说明

要定义的变量

FIELD(NFIELD)

包含当前材料点处的场变量的数组。这些与从当前增量末尾的节点插值的值一起传入,如初始条件定义、预定义字段变量定义或用户子例程 UFIELD 所指定。更新后的值用于计算定义为依赖于场变量的材料属性值。

要更新的变量

STATEV(NSTATV)

包含解相关状态变量的数组。这些作为增量开始时的值传入。在所有情况下,都可以在此子程序中更新 STATEV,并将更新后的值传递到在此材料点调用的其他用户子程序(CREEP、HETVAL、UEXPAN、UMAT、UMATHT 和 UTRS)。与该物质点相关联的状态变量的数量定义方法前面已经介绍了。

传递信息的变量

DIRECT(3,3)

一个数组,包含根据全局坐标方向的材料的方向余弦。

CELENT

单元特征长度。对于一阶元素,这是穿过元素的典型直线长度;对于二阶元素,它是相同典型长度的一半。对于梁和桁架,它是沿单元轴的特征长度。对于膜和壳,它是参考表面中的特征长度。对于轴对称元素,它只是 (r,z) ( r , z ) 平面中的特征长度。

NFIELD

用户定义的场变量数。

KSTEP

分析步号

KINC

增量步号

TIME(1)

分析步时间的当前值。

TIME(2)

当前总时间。

DTIME

时间增量

CMNAME

用户指定的材料名称

TEMP(NSECPT)

节点的当前温度。如果同时使用用户子程序 UTEMP 和 UFIELD,则用户子程序 UTEMP 在用户子程序 UFIELD 之前处理。

NSTATV

用户定义的依赖于解决方案的状态变量的数量(请参阅为依赖于解决方案的状态变量分配空间)。

NOEL

单元号

NPT

积分点编号。

LAYER

层数(对于复合壳和分层实体)。

KSPT

当前层内的剖面点编号。

NDI

直接应力分量数。

NSHR

剪应力分量数。

COORD

在这个物质点的坐标。

JMAC

必须传递到 GETVRM 实用程序以访问输出变量的变量。

JMATYP

必须传递到 GETVRM 实用程序以访问输出变量的变量。

MATLAYO

必须传递到 GETVRM 实用程序以访问输出变量的变量。

LACCFLA

必须传递到 GETVRM 实用程序以访问输出变量的变量。

6. 案例

案例主要是是用户子程序 USDFLD 的示例,仅仅是帮助读者理解用法,在这个例子中,一个桁架单元被受拉加载。引入了损伤的弹性模型:弹性模量随加载过程中拉伸应变而降低。最大拉伸应变存储为依赖于解的状态变量中。

SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT, 1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER, 2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO, 3 LACCFLA) C 引入一些默认声明 INCLUDE 'ABA_PARAM.INC' C 要用到的变量最好都声明 CHARACTER*80 CMNAME,ORNAME CHARACTER*3 FLGRAY(15) DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3), 1 T(3,3),TIME(2) DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*), 1 COORD(*) C C 获取当前应变的绝对值 : CALL GETVRM('E',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP, MATLAYO,LACCFLA) EPS = ABS( ARRAY(1) ) FIELD(1) = EPS C Store the maximum strain as a solution dependent state C variable STATEV(1) = FIELD(1) C If error, write comment to .DAT file: IF(JRCD.NE.0)THEN WRITE(6,*) 'REQUEST ERROR IN USDFLD FOR ELEMENTNUMBER ', 1 NOEL,'INTEGRATION POINT NUMBER ',NPT ENDIF C RETURN END

        最后,如果大家想获取我的测试模型对应的代码文件,在公众号回复Usdfld子程序即可自动获取。也欢迎大家一起交流学习,好啦​,今天就到这里,拜拜。获取更多资料和学习交流欢迎大家关注公众号冬生亦东生,分享旨在本人复习和交流



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有